#ifndef _BUOLA_CV_BARCODE_DECODE_H_
#define _BUOLA_CV_BARCODE_DECODE_H_

#include <buola/buola.h>

namespace buola { namespace cvi { namespace barcode {

enum class EType
{
    EAN,
    I25,
    CODE128,
    CODE39
};
    
struct CSymbol
{
    int mB;
    int mE;
    std::string mText;
    EType mType;
    int mDirection;
};
    
void decode_ean(const std::vector<int> &pWidths,std::vector<CSymbol> &pSymbols);
void decode_i25(const std::vector<int> &pWidths,std::vector<CSymbol> &pSymbols);
void decode_code128(const std::vector<int> &pWidths,std::vector<CSymbol> &pSymbols);
void decode_code39(const std::vector<int> &pWidths,std::vector<CSymbol> &pSymbols);
    
/*namespace barcode*/ } /*namespace cvi*/ } /*namespace buola*/ }

#endif
